Generally described, computer devices, such as personal computing devices (“PCs”), computing terminals, hand-held computers, mobile devices, and the like, provide a user with a variety of data processing functions. By utilizing various software applications resident on a computing device, the computing device can allow a user to communicate with other computing devices, to access information via a computer network, and/or to process data. To better facilitate interaction with a user, or group of users, the software applications can generates one or more user interfaces that are displayed on a computer display and interact with the user.
In one approach to a user interface, the user interface is limited to a text-based interface, in which a user manually enters commands to the software application via a computer keyboard. Text-based interfaces are inefficient, however, because they typically require the user to learn, and often memorize, a command language. Moreover, text-based interfaces require a user to be efficient in manipulating a keyboard. Another approach to a user interface involves a combination of graphical icons and text, which is generally referred to as a graphical user interface (“GUI”).
In one GUI embodiment, a software application being executed by the computing device generates instructions to a computer device operating system that results in the display of graphical images and text, such as icons, images, colors, and animation, within a rectangular window displayed on the computer display. A user can interact with the software application by manipulating the GUI with a selection device, such as a computer mouse or a touch-screen. Often, the user is not required to memorize any textual commands and many GUIs share common interface functionality. For example, any number of software applications may utilize the same graphical icon depicting a computer printer to allow a user to print material by manipulating the printer graphical icon. As the user manipulates the GUI, the user's actions are interpreted by the computing device operating system and relayed to the corresponding software application. The user's action can result in a modification of the GUI, such as the depression of a button icon, and can further result in the initiation of an action by either the operating system and/or the software application.
One skilled in the relevant art will appreciate that a GUI can be represented in terms of a rich user interface programming framework that includes instances of a number of user interface objects (“UI object”), such as a display object. In turn, each instance of a UI object can be defined by various object characteristics, which are represented in the UI as UI object properties. For example, a GUI may include a number of identical UI objects, such as a graphical button that can be depressed by manipulating a mouse. However, each instance of the UI button object in the GUI may be defined as having specific, and often distinguishing property values, such as dimension, color, opacity, and the like. Accordingly, the UI object is defined, and represented on the computer display by the operating system, in terms of its characteristic property values (e.g., large, red, 50%).
In a dynamic GUI, one or more of the property values for a UI object may change. For example, a software application may specify a dimension and color for a UI object if the user is manipulating the object and another dimension and color if the user is not manipulating the object. Accordingly, if a manipulation is detected, the software application issues a property change notification to the computing device operating system indicating the new property values for the UI object. In a typical dynamic GUI processing method, each property change notification generated by a software application causes the operating system to regenerate at least part of the display associated with the software application. In some instances, the notification can cause the operating system to regenerate the entire computing device display.
One skilled in the relevant art will appreciate that some operating system actions, such as regenerating the display, are work intensive and can consume a great deal of the system resources, such as processing resources. In addition to the property change notifications caused as a direct result of a manipulation event, a first property change and screen regeneration may cause additional property changes in other UI objects and require additional display regenerations. For example, a first UI object property change that modifies the dimensions of a UI object can effect the dimension properties of a number of adjacent UI objects. Under a conventionally configured dynamic GUI processing system, the operating system would potentially have to perform a series of display regenerations as an indirect result of the initial screen regeneration to modify the first UI object dimension property. Thus, continuous regeneration of the display by the operating system degrades the computing device's performance and diminishes the ability for the computing device to process additional system functions.
Thus, there is a need for a method and system for grouping and implementing UI object property changes to mitigate the number of continuous display regenerations in a computing device.